feat(vault): reorganize secrets with fine-grained policies#96
Conversation
908984c to
8eee878
Compare
mlorenzofr
left a comment
There was a problem hiding this comment.
tested and everything worked as expected, good job 👍
LGTM
sabre1041
left a comment
There was a problem hiding this comment.
This looks really good @minmzzhang and will make it much easier for end users to be able to both located and understand the purpose of each secret stored in Vault.
One item to update if possible. Can you update qtodo-user -> qtodo-user1 in
https://github.com/validatedpatterns/layered-zero-trust/blob/main/docs/multi-tier.md?plain=1#L35
Reorganize Vault secrets into segmented paths for least-privilege access: Secret Path Structure: - apps/<app-name>/ - Application-specific secrets (e.g., apps/qtodo/) - hub/infra/<component>/ - Infrastructure secrets (e.g., hub/infra/keycloak/) - global/ - Shared secrets (unchanged) - hub/ - Hub-level secrets (unchanged) Policy Naming Convention: - K8s auth policies: <path>-k8s-secret (for ClusterSecretStore/ExternalSecrets) - JWT auth policies: <path>-jwt-secret (for SPIFFE workload identity) Changes: - Update vaultPrefixes in values-secret.yaml.template for new paths - Update ExternalSecret references in chart values.yaml files - Add JWT policies to values-hub.yaml for SPIFFE workload authentication - Pass JWT policies to vault-config-jwt ansible task via vault-utils.sh This enables application-level secret isolation where each app only has access to its own secrets, following zero-trust principles. Depends on: rhvp/rhvp.cluster_utils PR for auto-creating K8s auth policies Signed-off-by: Min Zhang <minzhang@redhat.com>
8eee878 to
fd4287e
Compare
updated.. |
Reorganize Vault secrets into segmented paths for least-privilege access:
Secret Path Structure:
Policy Naming Convention:
Changes:
This enables application-level secret isolation where each app only has access to its own secrets, following zero-trust principles.
Depends on: rhvp/rhvp.cluster_utils PR validatedpatterns/rhvp.cluster_utils#87 for auto-creating K8s auth policies
Secrets Structure